using Circus.CodeEditor;
using System;
using System.ComponentModel;
using System.Drawing;
namespace Circus.CodeEditor.CodeCompletion
{
	public class CodeCompletionColumn 
	{
		private string name;
		private FontStyle fontStyle;
		private Color foreColor = Consts.DefaultControlForeColor;
		private bool visible = true;
		[Description("Gets or sets the name of the \"CodeCompletionColumn\".")]
		public virtual string Name
		{
			get
			{
				return this.name;
			}
			set
			{
				if (this.name != value)
				{
					this.name = value;
					this.OnNameChanged();
				}
			}
		}
		[Description("Gets or sets style information for \"CodeCompletionColumn\" font.")]
		public virtual FontStyle FontStyle
		{
			get
			{
				return this.fontStyle;
			}
			set
			{
				if (this.fontStyle != value)
				{
					this.fontStyle = value;
					this.OnFontStyleChanged();
				}
			}
		}
		[Description("Gets or sets Color structure that represents foreground color of the \"CodeCompletionColumn\".")]
		public virtual Color ForeColor
		{
			get
			{
				return this.foreColor;
			}
			set
			{
				if (this.foreColor != value)
				{
					this.foreColor = value;
					this.OnForeColorChanged();
				}
			}
		}
		[Description("Gets or sets a value indicating whether a column is visible.")]
		public virtual bool Visible
		{
			get
			{
				return this.visible;
			}
			set
			{
				if (this.visible != value)
				{
					this.visible = value;
					this.OnVisibleChanged();
				}
			}
		}
		protected virtual void OnNameChanged()
		{
		}
		protected virtual void OnFontStyleChanged()
		{
		}
		protected virtual void OnForeColorChanged()
		{
		}
		protected virtual void OnVisibleChanged()
		{
		}
		public virtual void ResetFontStyle()
		{
			this.fontStyle = FontStyle.Regular;
		}
		public virtual void ResetForeColor()
		{
			this.ForeColor = Consts.DefaultControlForeColor;
		}
		public virtual void ResetVisible()
		{
			this.Visible = true;
		}
	}
}
